<?php
/**
 * Model de Auditorias.
 *
 *
 * @filesource          
 * @copyright		
 * @link		http://www.pragmatia.com Pragmatia
 * @package		datagro
 * @subpackage	app.models
 * @version     1.1
 * @license		http://www.opensource.org/licenses/mit-license.php The MIT License
 * @author      Martin Radosta <mradosta@pragmatia.com>
 */


/**
 * Clase Auditoria
 *
 * @package	    datagro
 * @subpackage	app.models
 */
class Auditoria extends AppModel 
{ 
    var $name = 'Auditoria'; 

	var $belongsTo = array('Usuario' =>
                        array('className'    => 'Usuario',
                              'conditions'   => '',
                              'order'        => '',
                              'dependent'    =>  true,
                              'foreignKey'   => 'usuario_id'),
							'AuditoriaTipo' =>
                        array('className'    => 'AuditoriaTipo',
                              'conditions'   => '',
                              'order'        => '',
                              'dependent'    =>  true,
                              'foreignKey'   => 'tipo')
	);    

	function auditar($usuario, $datos_r) 
    { 
		$datos_m['controlador'] = "";
		$datos_m['accion'] = "";
		$datos_m['usuario_id'] = "-1";

		$datos = am($datos_m, $datos_r);

		if(isset($usuario['Usuario']['id']))
			$save['usuario_id'] = $usuario['Usuario']['id'];		

		$save['fecha_hora'] = date("Y-m-d H:i:s");   
		$save['ip'] = $this->__findIp();
		$save['tipo'] = $datos['tipo'];
		$save['controlador'] = strtolower($datos['controlador']);
		$save['accion'] = strtolower($datos['accion']);
		$this->create();
		return $this->save($save);
    } 


    function __findIp() {
      if(getenv("HTTP_CLIENT_IP"))
        return getenv("HTTP_CLIENT_IP"); 
      elseif(getenv("HTTP_X_FORWARDED_FOR"))
        return getenv("HTTP_X_FORWARDED_FOR"); 
      else 
        return getenv("REMOTE_ADDR"); 
    } 

} 
?>